VADS
Proven Ada Compilation Systems
- Is easy to learn and use
- Is the most reliable set of Ada compilers available
- Offers extremely powerful debugging support
- Generates compact, high-performance executables
- Provides real-time performance capability
- Works for small projects and those with millions of lines of code
- Provides extensive support for machine-level programming
- Has the same features and "look and feel" across all platforms
Rational's VADS (R) product line is an extensive family of mature,
production-quality, optimizing Ada compilers, cross-compilers, and related
tools to help you
debug, understand, tune, and deliver your code. VADS is available for
most
popular host platforms and embedded-system targets. All VADS
compilers are
built from a common code base, so they offer a common user
interface and
common functionality. VADS is a fundamental component of
Rational's modern,
Ada-based, software-engineering solution, which comprises a set of
software
processes, products, and services that give you control of your
software-development efforts and sharpen your competitive edge.
Provides a solution for every Ada application
There is an easy-to-use VADS solution--VADSself (TM), VADScross
(TM), or
VADSworks (TM)--for every Ada project. VADSself provides a
complete toolset
for self-targeted (native) applications. VADScross provides support
for host-to-target development of real-time embedded systems. VADScross
includes every
tool provided in VADSself, plus additional tools that extend VADS to
provide a
fast, efficient cross-development system. VADSworks is a version
of VADScross
that supports the VxWorks runtime executive from Wind River
Systems;
VADSworks is ideal for applications on off-the-shelf VME hardware.
Brings you higher development productivity
Each VADSself, VADScross, or VADSworks product includes--in
addition to the
compiler or cross-compiler--a code optimizer, a symbolic debugger,
a
disassembler, a cross-reference generator, a source-code formatter
(pretty-printer), an Ada preprocessor, a library manager, a compilation
manager, a rich
set of standard libraries including math packages, and extensive
online help and
hard-copy documentation.
The Ada preprocessor allows conditional compilation and inclusion
of Ada source
code to broaden your configuration-management options. The library
manager
helps you organize the components of a large program by
establishing multiple
libraries based on your specific project needs. The a.make
compilation manager
recompiles out-of-date units based on dependency information
generated by the
compiler, freeing you from the error-prone task of managing source-file
dependencies.
No matter what platform you use, the power of VADS
helps you complete your application sooner.
Optimizes your code for high performance
VADS offers dozens of user-controllable code optimizations. These
include:
- Code straightening
- Constant folding and copy, value, and range propagation
- Hoisting of loop-invariant code and range checks
- Elimination of common subexpressions and redundant branches
and range
checks
- Strength reduction on induction expressions
- Removal of dead variable assignments
- Sophisticated register allocation and management
- Peephole optimization
VADS code generators for RISC architectures perform instruction
scheduling and
generate hardware floating-point instructions when appropriate.
VADS produces
code that is fast, compact, and efficient.
Minimizes the size of your application
VADS supports shared-code generics, in which multiple
instantiations of a
generic template are implemented using a single, shared segment of
object code,
reducing the size of your application. You also have the option of
fully replicated
generics, giving you control over the space/time trade-off.
VADScross features
selective linking, which creates the smallest possible executable by
including only
the subprograms and data your application requires. VADSself
features selective
linking where it is supported by the standard system linker provided
by the
platform vendor.
Reduces turnaround time dramatically
Even though the VADS compilers are very fast, linking large
programs can be a
bottleneck in edit-compile-debug turnaround time. To solve this
problem, we
designed the VADS linker to be extremely fast, so you can quickly
edit, compile,
link, and then test your code. In addition, VADS minimizes object
file symbols to
reduce the amount of work the linker must do. The VADS approach
pays off. For
example, on the P-3 Orion UPDATE IV project, the VADS linker
calculates the
elaboration order of more than 7,000 software units (over 1.5
million lines of
code) in just minutes using minimal memory.
Controls machine-level details
VADS provides complete support for Chapter 13 of the Reference
Manual for the
Ada Programming Language, including bit-level representation
clauses, length
clauses, and address clauses. Because VADS provides machine-code
insertions,
you can use standard Ada mechanisms to encapsulate very low-level,
machine-specific code and even make this code in-line. Our attention to the
details of
Chapter 13 increases the functionality of VADS so that you can avoid
the work-arounds required by most other compilers. For example, it is easy to
construct
otherwise difficult low-level interfaces to code written in other
languages. VADS
gives you a level of control essential for programming both
embedded systems
and low-level host applications.
Provides high-performance runtime options
The VADS runtime system provides full Ada support for real-time
applications
and extended capabilities to give you more control over real-time
performance.
Mailboxes are supported, giving you an option for intertask
communication other
than the standard Ada rendezvous. Semaphores are supported.
Passive task
optimizations provide high-speed Ada tasking for time-critical
applications;
passive tasking can occur in as little as a few microseconds. You can
control
many other aspects of tasking, including time slicing, dynamic
alteration of task
priority, and preemption-control algorithms.
The VADS runtime system offers flexible memory management,
including the
ability to add custom memory-management routines. Support for
interrupts is
extensive, with standard Ada mechanisms for interrupt handling and
very fast
capabilities for interrupt service routines. VADS provides direct,
sequential, text,
and low-level I/O as well as a family of timers and clocks.
The small, fast, and efficient VADS runtime system can be easily
configured and
tailored to customized processors without requiring compiler
revalidation.
VADS gives you control where you need it. The VADS real-time
options are
available on VADSself, VADScross, and VADSworks, so you can test
more of
your code on the host before moving to your embedded target.
The compatibility of VADSself, VADScross, and VADSworks
allows testing
on your host and full support for testing on the
target.
Offers a powerful, nonintrusive debugger
VADS includes a Motif-based symbolic debugger. Because the VADS
debugger
gets its symbolic information from the Ada library instead of from
your
executables, there is never any need to recompile for debugging.
Debugging
information is always available without any cost at link time!
The VADS debugger fully supports Ada exceptions, tasking, generics,
shared
generics, representation clauses, and in-line code. You can:
- Examine and modify the values of memory locations, registers,
and complex
data structures
- Display tasks, their status, and resource consumption in task
windows
- Single-step over instructions and over calls and display and
navigate around
the call stack
- Set breakpoints at source-level statements, at instructions, at
the beginnings
of subprograms, or at exceptions
- Set conditional breaks and specify automatic actions at
breakpoints.
The VADS debugger provides a Motif user interface that is user-configurable and
user-extensible. This interface makes the VADS debugger the most
powerful and
useful debugger available today.
The VADS debugger allows interactive subprogram calls, so you can
write and
use sophisticated debugging instrumentation subprograms. It
provides extensive
command logging and scripting capabilities to automate your
debugging activities
and make them reproducible. You can invoke the editor from the
debugger to
make changes immediately to your source code. The debugger
understands all
of the VADS runtime options and gives you a single, consistent
debugger model
even if you use the additional real-time mechanisms provided by
VADS.
Debugs optimized code
With VADS, you debug the fully optimized code that will run in your
field
application. You never need to recompile your code with
optimizations turned off
to use the debugger. The debugger also interfaces with the runtime
system to
provide you with details on the tasking state of your program. Using
the VADS
debugger, you can quickly understand the behavior of your program.
Debugs your embedded systems in real time
The VADS cross-compilers include the VADS debugger in cross-development
mode, making it easy to test and debug embedded systems. You
download and
debug directly from the host, choosing the host-to-target
communications link that
best meets your project's needs: RS232 or Ethernet. Because the
target debug
monitor is a stand-alone, system-level debugging agent, you can
debug at the
lowest levels--including interrupt service routines or kernel
configuration code.
The VADS symbolic debugger can also serve as the interface for your
in-circuit
emulator. Trace buffers record signals from every buffer cycle out
of the CPU, so
that you can review the buffer and analyze the course of debugging.
Allows reuse of code in other languages
The self-hosted linker maintains the same object file format as the
host, enabling
interoperability between Ada, C, FORTRAN, assembly, and other
languages on
every platform we support. You can reuse existing code or software
components
in these other languages to save time and money. VADS and
applications
generated by VADS interface easily with other applications, such as
databases,
windowing systems, and program-management tools.
The VADS debugger provides source-level debugging for mixed-language
programs consisting of Ada, C, and assembly.
Frees you from dependence on your current hardware
The entire VADS family is built from a single, shared base of source
code. The
"look and feel," compiler details (representation clauses, attributes,
packages),
debugger operations, interface to the runtime executive, and most
other product
features are identical across VADSself, VADScross, and VADSworks
on all
platforms.
The hardware independence of VADS enables you to work on the
hardware of
your choice, share software among dissimilar hardware systems,
and develop
software programs on multiple hosts. Source code is extremely
portable from one
member of the VADS family to another. You can change host or target
hardware
as your requirements change, without changing your application code
or
retraining your development team.
Brings you field-proven reliability
All VADS compilers are validated against ACVC 1.11, although
validation is only
a tiny part of the testing that all VADS compilers undergo. VADS has
been
proven on projects ranging from thousands to millions of lines of
code. Our
regression test suite includes millions of lines of customer code
from some of the
world's most demanding applications. Today, VADS is the world's
"most
experienced" Ada compiler system; it has processed more Ada code
than any
other system available.
From the shipment of the first VADS product over a decade ago, we
have
focused on maximizing customer productivity and providing the
precision and
robustness that Ada programmers expect from their tools. VADS
reflects our
experience in supporting some of the world's largest and most
sophisticated Ada
applications. We have designed, refined, and expanded VADS to
implement
features demanded by real-world programmers. VADS meets the
most stringent
program needs, because we have paid attention to the performance
demands of
our customers.
Works with other tools to provide a complete solution
The capabilities listed above are part of the basic VADSself,
VADScross, or
VADSworks products. The VADS family also includes optional extra
tools to give
you an even more complete Ada development solution.
VADSanalysis (TM) gives you nonintrusive coverage analysis,
performance
profiling, and program tracing and debugging at the level of task
events to help
you rapidly understand and tune your application's behavior.
VADSfilesystem
(TM) offers a highly reliable, fault-tolerant, portable file system for
high-performance, real-time applications. VADSnet (TM) provides off-the-shelf, high-speed, reliable networking. Rational also offers an extensive
selection of Ada
source-code bindings to other tools, such as X and Motif, making it
easy to
produce Ada applications that use standard GUI mechanisms.
VADSmp (TM) offers shared-memory multiprocessor support in a
special version
of the VADS runtime executive, when the underlying operating
system supports
POSIX threads. DADS (TM), a distributed application development
system, offers
automatic distribution of Ada objects (tasks, subprograms, and data)
in an Ada
program across a homogeneous network. UNAS, Universal Network
Architecture
Services, supports the development of distributed, heterogeneous
Ada
applications.
VADS is also integrated with Rational Apex (TM), the industry's only
interactive,
team-oriented, software-engineering environment for Ada, and the
Rational Apex
family of add-on products: Rational Rose (R), Rational Rose (R)/Ada,
TestMate
(TM), SoDA (TM), Ada Analyzer, and AdaQuest.
From compilers and cross-compilers, to an integrated programming
environment,
to tools for analysis and design, automated testing, document
generation, and
software metrics, the Rational product line is the most extensive
one available to
help you cope with the problems of designing, building, and
maintaining complex
software systems in Ada.
D-107A; last updated 10/2/95